from lxml import etree

# 创建ElementTree类对象
ele_tree = etree.parse(r'bookstore.xml')
print(type(ele_tree))


xml_doc = """
<bookstore>
    <book>
        <title lang="eng">Harry Potter</title>
        <price>29.99</price>
    </book>
    <book>
        <title lang="eng">Learning XML</title>
        <price>39.95</price>
    </book>
</bookstore>
"""
# 从字符串解析XML片段
root_node = etree.fromstring(xml_doc)
print(root_node)

all_roots = root_node[:]    # 获取所有子节点
print(all_roots)
print(root_node[:][0])         # 获取第1个子节点
print(root_node[:][1])         # 获取第2个子节点

print(root_node.tag)        # 获取根节点名称
print(root_node[:][0][0].text)      # 获取第一个title节点的文本信息

# 多方法查找第一个price节点的文本
res1 = root_node.find('.//price').text      # find()方法返回匹配到的第一个子节点
print(res1)
res2 = root_node.findall('.//price')[0].text        # findall()方法以列表的形式返回匹配到的所有子节点
print(res2)
res3 = root_node.xpath('.//price')[0].text      # xpath()方法以列表的形式返回匹配到的所有子节点
print(res3)